package com.zenithmind.chat.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.zenithmind.common.base.BaseEntity;
import com.zenithmind.chat.enums.GroupType;
import com.zenithmind.chat.enums.GroupStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 聊天群组实体类 - 遵循单一职责原则
 * 只负责群组的核心信息，权限设置和关联信息分离到专门的实体类
 *
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_group")
public class ChatGroup extends BaseEntity {

    /**
     * 群组名称
     */
    private String name;

    /**
     * 群组描述
     */
    private String description;

    /**
     * 群组头像
     */
    private String avatar;

    /**
     * 群组类型
     */
    private GroupType type;

    /**
     * 群组状态
     */
    private GroupStatus status;

    /**
     * 群主ID
     */
    private String ownerId;

    /**
     * 最大成员数
     */
    private Integer maxMembers;

    /**
     * 当前成员数
     */
    private Integer memberCount;

    /**
     * 排序值
     */
    private Integer sort;

    /**
     * 扩展信息（JSON格式）
     */
    private String extraInfo;
}
